package com.mida.bms.report.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.mida.bms.report.entity.DocReportClobContent;
import com.mida.tool.common.utils.LongToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 根据上机，登记，申请单号保存报告请求参数
 */
@Data
public class SaveDocReportRequest {

    @ApiModelProperty(value = "合单后存下的数据")
    private List<DocReportListVo> docReportListVos;

    @ApiModelProperty(value = "服务实例数据")
    private List<ServiceInstanceVo> serviceInstanceVoList;

    @ApiModelProperty(value = "申请单标识")
    Long requestSoid;

    @ApiModelProperty(value = "患者soid(人标识)")
    private String personSoid;

    @ApiModelProperty(value = "登记标识")
    String registrationFormSoid;

    @ApiModelProperty(value = "登记号")
    String registrationNo;

    @ApiModelProperty(value = "结构化模板基本信息标识")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    Long stTemplateInfoSoid;

    @ApiModelProperty(value = "报告vo")
    DocReportVo docReportVo;

    @ApiModelProperty(value = "影像所见内容")
    String phenomenonContent;

    @ApiModelProperty(value = "影像诊断内容")
    String diagnosticContent;

    @ApiModelProperty(value = "报告存储信息标识")
    String stReportSoid;

    @ApiModelProperty(value = "特殊段落模块(影像所见,影响诊断...)")
    List<DocReportClobContent> docReportClobContentList;

    @ApiModelProperty(value = "检查类型")
    private Long examType;

    @ApiModelProperty(value = "检查标识")
    private Long examinationVisitSoid;

    @ApiModelProperty(value = "患者姓名(这里用来校验写报告期间上游是否修改了患者姓名)")
    private String patientName;
}
